//经天（排布天盘）
//引用
 import Symbol from "./fixed/symbol";
 
 
const JingTian = {
	/**  根据数据获取 对应的下标
	 *   @param   {Array} arr  数组
	 *   @param   {String} searchWord 查询的元素
	 * 	 @returns number -1时表示未找到，其他值表示对应数组的下标
	 */
	
	getRow: function getRow(arr, searchWord) {
		var row = arr.findIndex((value) => value === searchWord);
		return row;
	},
	
	/**
	 * 1、天盘九星
	 * 		@param {String} yinyangdun 阴遁或者阳遁
	 * 		@param {number} num '时干' 与  '地盘干' 对应的宫位
	 * 		@returns {object} 返回天盘九星
	 */
	getTjiuxing:function getTjiuxing(yinyangdun,Ystarnum,num){
		//初始化天盘九星
		let Tstar;
		
		//获取原始的值符使并按照此为开头重新排列
		let Xstar = Symbol.star.slice(Ystarnum).concat(Symbol.star.slice(0, Ystarnum));
		let Tgod;
		if (yinyangdun == '阳遁') {
			
			Tstar = Xstar.slice(9 - num).concat(Xstar.slice(0, 9 - num));
		
		} else {
			
			Tstar = Xstar.slice(0, num+1).reverse().concat(Xstar.slice(num+1).reverse());
		
		}
		return Tstar;
	},
	
	/**
	 * 2、天盘干
	 * 		@param {String}   yinyangdun 阴遁或者阳遁
	 * 		@param {Number}   Xnum  旬首所在的宫位
	 * 		@param {Number}   num   '时干' 与  '地盘干' 对应的宫位
	 * 		
	 * 
	 */
	getTdry:function getTdry(yinyangdun,Xnum,num){
		// 初始化天盘干
			let Tdry;
		//将  仪奇  按照  旬首 开头重新排列
			let initS = Symbol.yiqi.slice(Xnum).concat(Symbol.yiqi.slice(0, Xnum));
			console.log('initS:'+initS);
		
			if (yinyangdun == '阳遁') {
				
				Tdry = initS.slice(9 - num).concat(initS.slice(0, 9 - num)); 
			
			} else {
				
				Tdry = initS.slice(0, num+1).reverse().concat(initS.slice(num+1).reverse());
			
			}
			return Tdry;
	},
	
	/**
	 * 3、天盘九神
	 * 		@param {String}   yinyangdun 阴遁或者阳遁
	 * 		@param {Number}   Xnum  旬首所在的宫位
	 * 		@returns {Object} 返回九神  Tgod
	 */
	getTjiushen:function getTjiushen(yinyangdun,num){
		// 初始化九神
		let Tgod;
		if (yinyangdun == '阳遁') {
			
			Tgod = Symbol.Yanggod.slice(9-num).concat(Symbol.Yanggod.slice(0,9-num));
		
		} else {
			
			Tgod = Symbol.Yingod.slice(0, num+1).reverse().concat(Symbol.Yingod.slice(num+1).reverse());
		
		}
		return Tgod;
	},
	
	/**
	 *	4、天盘暗干支 
	 * 		@param {String} yinyangdun   
	 * 		@param {object}  daterow ‘时干支’ 对应的 ‘六甲’
	 * 		@param {number} num 
	*/
   getTDganzhi:function getTDganzhi(yinyangdun,daterow,num){
	   // 初始化天盘暗干支
	   let TDdry;
	   if (yinyangdun == '阳遁') {
	   	
	   	TDdry = daterow.slice(9 - num).concat(daterow.slice(0, 9 - num));
	   
	   } else {
	   	
	   	TDdry = daterow.slice(0, num+1).reverse().concat(daterow.slice(num+1).reverse());
	   
	   }
	   return TDdry;
   },
   
   
	
   getAllData:function getAllData(Yinyang,Ystarnum,Tnum,Xnum,SXshou){
	   
	   // 1、排布天盘九星（涉及元素：『阴阳遁』、『值符星』宫位、『地盘时干』宫位）：
		const Tjiuxing = this.getTjiuxing(Yinyang,Ystarnum,Tnum);
		
	   // 2、排布天盘奇仪（涉及元素：『阴阳遁』、『旬首』宫位、『地盘时干』宫位)
	    const Tqiyi = this.getTdry(Yinyang,Xnum,Tnum);
		
	   //  3、排布天盘九神：（涉及元素：『阴阳遁』、『地盘时干』宫位)
	    const Tjiushen = this.getTjiushen(Yinyang,Tnum);
		
	   //  4、排布天盘暗干支：（涉及元素：阴阳遁』、『旬首』宫位)
		const TDganzhi = this.getTDganzhi(Yinyang,SXshou,Tnum);
		
	   // 5、 输出数据：
		 const json = {
			 "Tjiuxing":Tjiuxing,
			 "Tqiyi":Tqiyi,
			 "Tjiushen":Tjiushen,
			 "TDganzhi":TDganzhi
		 }
		 console.log("=======json======"+Tjiuxing)
	    return json;
   }
};

export default JingTian;